package com.great.start;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.xiaoleilu.hutool.date.DateUtil;

/**
 * 一些小工具
 * @author Administrator
 *
 */
public class Util {
	
	/**
	 * 打印日志
	 * @param msg
	 */
	public static void print_sys(String msg){
		String cudate = "date:"+DateUtil.now()+"  --";
		System.out.println(cudate+msg);
	}
	
	/**
	 * 获取目录下所有文件
	 * @param file
	 */
	 public static List getDirectory(File file) {
	  File flist[] = file.listFiles();  
	  List mp3List = new ArrayList<>();
	 // Map<String, String> mp3Map = new HashMap<String, String>();
	  if (flist == null || flist.length == 0) {  
		  System.out.println("0");
	  }  
	  for (File f : flist) {  
	      if (f.isDirectory()) {  
	          //System.out.println("Dir==>" + f.getAbsolutePath());   
	          getDirectory(f);  
	      } else {  
	    	 // mp3Map.put(f.getName(), f.getAbsolutePath());
	    	  mp3List.add(f.getAbsolutePath());
	      }  
	  }
	  
	  return mp3List;
	}  
	
	/** 
     * 从网络Url中下载文件 
     * @param urlStr 
     * @param fileName 
     * @param savePath 
     * @throws IOException 
     */  
    public static void  downLoadFromUrl(String urlStr,String fileName,String savePath) throws IOException{  
        URL url = new URL(urlStr);    
        HttpURLConnection conn = (HttpURLConnection)url.openConnection();    
                //设置超时间为3秒  
        conn.setConnectTimeout(3*1000);  
        //防止屏蔽程序抓取而返回403错误  
        conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");  
  
        //得到输入流  
        InputStream inputStream = conn.getInputStream();    
        //获取自己数组  
        byte[] getData = readInputStream(inputStream);      
  
        //文件保存位置  
        File saveDir = new File(savePath);  
        if(!saveDir.exists()){  
            saveDir.mkdir();  
        }  
        File file = new File(saveDir+File.separator+fileName);      
        FileOutputStream fos = new FileOutputStream(file);       
        fos.write(getData);   
        if(fos!=null){  
            fos.close();    
        }  
        if(inputStream!=null){  
            inputStream.close();  
        }  
  
  
        System.out.println("info:"+url+" download success");   
  
    }  
  
  
  
    /** 
     * 从输入流中获取字节数组 
     * @param inputStream 
     * @return 
     * @throws IOException 
     */  
    public static  byte[] readInputStream(InputStream inputStream) throws IOException {    
        byte[] buffer = new byte[1024];    
        int len = 0;    
        ByteArrayOutputStream bos = new ByteArrayOutputStream();    
        while((len = inputStream.read(buffer)) != -1) {    
            bos.write(buffer, 0, len);    
        }    
        bos.close();    
        return bos.toByteArray();    
    }    
	
}
